package com.xuecheng.manage_cms.service;

import com.xuecheng.framework.domain.cms.CmsTemplate;
import com.xuecheng.framework.model.response.QueryResponseResult;
import com.xuecheng.framework.model.response.ResponseResult;
import org.springframework.web.multipart.MultipartFile;

import java.io.InputStream;
import java.util.Map;

public interface CmsTemplateService {
    /**
     * 查询所有的Cms模板信息
     * @return 查询出的结果封装成统一返回对象
     */
    QueryResponseResult findAllTemplate();
    /**
     * @param page 第几页
     * @param size 每页显示多少
     *             分页查询所有的Cms模板信息
     * @return 查询出的结果封装成统一返回对象
     */
    QueryResponseResult findListByPagination(int page, int size);
    /**
     * 根据id查询一个CmsTemplate
     * @param templateId templateId
     * @return 结果
     */
    public CmsTemplate findById(String templateId);
    /**
     *上传模板文件
     * @param file 模板文件
     * @param templateName 模板文件名
     * @param templateParameter 模板参数
     * @param siteId 站点id
     * @return 响应结果
     */
    ResponseResult uploadTemplate(MultipartFile file, String templateName, String templateParameter,String siteId);
    /**
     * 根据模板id删除模板
     * @param templateId 模板id
     * @return 操作响应
     */
    ResponseResult deleteTemplate(String templateId);
    /**
     * 根据模板id导出模板
     * @param cmsTemplate 模板
     * @return Map<String,Object> 文件名和流
     */
    Map<String,Object> downTemplate(CmsTemplate cmsTemplate);

    /**
     *更新模板文件
     * @param multipartFile 模板文件
     * @param templateId 模板id
     * @param templateName 模板文件名
     * @param templateParameter 模板参数
     * @param siteId 站点id
     * @return 响应结果
     */
    ResponseResult updateTemplate(MultipartFile multipartFile,String templateId,String templateName,String templateParameter,String siteId);
}
